package com.tbit.uqbike.webmanager.dao.core;

import com.tbit.uqbike.object.pojo.RechargeConfig;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author: chen
 * @Description: 充值界面金额配置
 * @Date: 创建于 11:10 2020/5/8
 */
public interface RechargeConfigDao {
    /**
     * 通过区域id查询
     */
    List<RechargeConfig> getByAccountId(Integer accountId);

    /**
     * 根据区域id和金额查询
     *
     * @param money     金额
     * @param accountId 区域id
     * @return 配置
     */
    RechargeConfig getByAccountIdAndMoney(Integer accountId, Integer money);

    /**
     * 添加
     */
    void insert(RechargeConfig rechargeConfig);

    /**
     * 修改
     */
    void update(RechargeConfig rechargeConfig);

    /**
     * 删除
     */
    void del(Integer rechargeConfigId);

    /**
     * 根据id查询赠送配置
     *
     * @param rechargeConfigId 赠送配置id
     * @return 赠送配置对象
     */
    RechargeConfig selectById(Integer rechargeConfigId);

    /**
     * 验证是否存在相同金额
     *
     * @param baseMoney        充值金额
     * @param accountId        运营区域id
     * @param rechargeConfigId 配置id
     * @return true(存在) or false(不存在)
     */
    boolean sameAmountCheck(Integer baseMoney, Integer accountId, Integer rechargeConfigId);

    /**
     * 批量新增充值配置
     * @param rechargeConfigs 充值配置集合
     */
    void batchAdd(@Param("rechargeConfigs") List<RechargeConfig> rechargeConfigs);

    void delByAccountId(@Param("accountId")Integer accountId);
}
